package xyz.lwm.lazycat.utility.scan;

import xyz.lwm.lazycat.utility.resource.Resource;

import java.util.List;

/**
 * scanning resources and scanning classes
 *
 * @author lwm
 */
public abstract class ScanUtil {

    /**
     * 扫描资源, 通配符方式
     *
     * @param pattern 通配符路径
     * @return resources
     */
    // classpath:com/test/**/*.sql
    // file:D:\temp\**\hh*.txt
    public static List<Resource> scanResources(String pattern) {
        return new PatternResourceScanner().scan(pattern);
    }

    /**
     * 扫描类, 通配符包名或类名。
     * <pre>
     * 示例 1: 扫描包:
     *     com.test.*.core
     *     com.test.hi.**
     * 示例 2: 扫描类 (必须加 .class 后缀, 不然会当作扫描包):
     *     com.test.Json.class
     *     com.test.hi.My*.class
     * </pre>
     *
     * @param name 包名或类名
     * @return classes
     */
    public static List<Class<?>> scanClasses(String name) {
        return new PatternClassScanner().scan(name);
    }

}
